package com.dyj.goodlife.domain;

import java.util.List;
import java.util.Map;

public class FulfilmentCertificatePrepareCertificates {

    /**
     * 凭证附加信息 选填
     */
    private Map<Integer,String> additional_map;
    /**
     * 券ID 选填
     */
    private Long certificate_id;
    /**
     * 券码 (未核销时不返回、已核销可撤销时不返回) 选填
     */
    private String code;
    /**
     * 加密券码, 在验券接口传入
     */
    private String encrypted_code;
    /**
     * 券码有效期（截至时间）（秒时间戳） 选填
     */
    private Long expire_time;
    /**
     * 券码有效期（开始时间）（秒时间戳） 选填
     */
    private Long start_time;
    /**
     * 券的状态 选填
     */
    private Integer status;
    /**
     * <p>核销类型。</p><p>在正常状态下。只有在券码已经使用过的时候才会返回。</p><p>如果券码已使用。则返回 <em>UsedStatusType_VerifyInShop</em>  店铺核销 如果券码是一品双开，且是锁定状态。则返回<em>UsedStatusType_GouponSwitchDelivery  </em>团购转配送 如果券码是家装意向金核销。则返回 <em>UsedStatusType_FulfilledAfterPayment  </em>尾款买单后核销</p> 选填
     */
    private Integer used_status_type;
    /**
     * 提前购买规则（非错峰特惠才会返回） 选填
     */
    private FulfilmentCertificatePrepareCertificatesAdvancePurchaseStruct advance_purchase_struct;
    /**
     * 金额信息
     */
    private FulfilmentCertificatePrepareCertificatesAmount amount;
    /**
     * 预约信息（目前用于提货券） 选填
     */
    private FulfilmentCertificatePrepareCertificatesBookInfo book_info;
    /**
     * 不可用门店List 选填
     */
    private List<String> not_available_poi_list;
    /**
     * 不可用时间信息（不包括开始时间和截止时间） 选填
     */
    private FulfilmentCertificatePrepareCertificatesNotAvailableTimeInfo not_available_time_info;
    /**
     * 错峰优惠信息，核销准备接口返回 选填
     */
    private FulfilmentCertificatePrepareCertificatesOffPeakDiscountInfo off_peak_discount_info;
    /**
     * 周期卡信息 选填
     */
    private FulfilmentCertificatePrepareCertificatesPeriodCard period_card;
    /**
     * 券留资信息 选填
     */
    private FulfilmentCertificatePrepareCertificatesReserveInfo reserve_info;
    /**
     * <p>商品信息（组合券包场景返回子品信息）</p>
     */
    private FulfilmentCertificatePrepareCertificatesSku sku;
    /**
     * 次卡信息 选填
     */
    private FulfilmentCertificatePrepareCertificatesTimeCard time_card;
    /**
     * 可用时间段信息 选填
     */
    private FulfilmentCertificatePrepareCertificatesUseTimeInfo use_time_info;
    /**
     * 简化版核销信息（未核销时为空） 选填
     */
    private FulfilmentCertificatePrepareCertificatesVerifyRecord verify;
    /**
     * 核销记录 选填
     */
    private List<FulfilmentCertificatePrepareCertificatesVerifyRecord> verify_records;

    public Map<Integer, String> getAdditional_map() {
        return additional_map;
    }

    public FulfilmentCertificatePrepareCertificates setAdditional_map(Map<Integer, String> additional_map) {
        this.additional_map = additional_map;
        return this;
    }

    public Long getCertificate_id() {
        return certificate_id;
    }

    public FulfilmentCertificatePrepareCertificates setCertificate_id(Long certificate_id) {
        this.certificate_id = certificate_id;
        return this;
    }

    public String getCode() {
        return code;
    }

    public FulfilmentCertificatePrepareCertificates setCode(String code) {
        this.code = code;
        return this;
    }

    public String getEncrypted_code() {
        return encrypted_code;
    }

    public FulfilmentCertificatePrepareCertificates setEncrypted_code(String encrypted_code) {
        this.encrypted_code = encrypted_code;
        return this;
    }

    public Long getExpire_time() {
        return expire_time;
    }

    public FulfilmentCertificatePrepareCertificates setExpire_time(Long expire_time) {
        this.expire_time = expire_time;
        return this;
    }

    public Long getStart_time() {
        return start_time;
    }

    public FulfilmentCertificatePrepareCertificates setStart_time(Long start_time) {
        this.start_time = start_time;
        return this;
    }

    public Integer getStatus() {
        return status;
    }

    public FulfilmentCertificatePrepareCertificates setStatus(Integer status) {
        this.status = status;
        return this;
    }

    public Integer getUsed_status_type() {
        return used_status_type;
    }

    public FulfilmentCertificatePrepareCertificates setUsed_status_type(Integer used_status_type) {
        this.used_status_type = used_status_type;
        return this;
    }

    public FulfilmentCertificatePrepareCertificatesAdvancePurchaseStruct getAdvance_purchase_struct() {
        return advance_purchase_struct;
    }

    public FulfilmentCertificatePrepareCertificates setAdvance_purchase_struct(FulfilmentCertificatePrepareCertificatesAdvancePurchaseStruct advance_purchase_struct) {
        this.advance_purchase_struct = advance_purchase_struct;
        return this;
    }

    public FulfilmentCertificatePrepareCertificatesAmount getAmount() {
        return amount;
    }

    public FulfilmentCertificatePrepareCertificates setAmount(FulfilmentCertificatePrepareCertificatesAmount amount) {
        this.amount = amount;
        return this;
    }

    public FulfilmentCertificatePrepareCertificatesBookInfo getBook_info() {
        return book_info;
    }

    public FulfilmentCertificatePrepareCertificates setBook_info(FulfilmentCertificatePrepareCertificatesBookInfo book_info) {
        this.book_info = book_info;
        return this;
    }

    public List<String> getNot_available_poi_list() {
        return not_available_poi_list;
    }

    public FulfilmentCertificatePrepareCertificates setNot_available_poi_list(List<String> not_available_poi_list) {
        this.not_available_poi_list = not_available_poi_list;
        return this;
    }

    public FulfilmentCertificatePrepareCertificatesNotAvailableTimeInfo getNot_available_time_info() {
        return not_available_time_info;
    }

    public FulfilmentCertificatePrepareCertificates setNot_available_time_info(FulfilmentCertificatePrepareCertificatesNotAvailableTimeInfo not_available_time_info) {
        this.not_available_time_info = not_available_time_info;
        return this;
    }

    public FulfilmentCertificatePrepareCertificatesOffPeakDiscountInfo getOff_peak_discount_info() {
        return off_peak_discount_info;
    }

    public FulfilmentCertificatePrepareCertificates setOff_peak_discount_info(FulfilmentCertificatePrepareCertificatesOffPeakDiscountInfo off_peak_discount_info) {
        this.off_peak_discount_info = off_peak_discount_info;
        return this;
    }

    public FulfilmentCertificatePrepareCertificatesPeriodCard getPeriod_card() {
        return period_card;
    }

    public FulfilmentCertificatePrepareCertificates setPeriod_card(FulfilmentCertificatePrepareCertificatesPeriodCard period_card) {
        this.period_card = period_card;
        return this;
    }

    public FulfilmentCertificatePrepareCertificatesReserveInfo getReserve_info() {
        return reserve_info;
    }

    public FulfilmentCertificatePrepareCertificates setReserve_info(FulfilmentCertificatePrepareCertificatesReserveInfo reserve_info) {
        this.reserve_info = reserve_info;
        return this;
    }

    public FulfilmentCertificatePrepareCertificatesSku getSku() {
        return sku;
    }

    public FulfilmentCertificatePrepareCertificates setSku(FulfilmentCertificatePrepareCertificatesSku sku) {
        this.sku = sku;
        return this;
    }

    public FulfilmentCertificatePrepareCertificatesTimeCard getTime_card() {
        return time_card;
    }

    public FulfilmentCertificatePrepareCertificates setTime_card(FulfilmentCertificatePrepareCertificatesTimeCard time_card) {
        this.time_card = time_card;
        return this;
    }

    public FulfilmentCertificatePrepareCertificatesUseTimeInfo getUse_time_info() {
        return use_time_info;
    }

    public FulfilmentCertificatePrepareCertificates setUse_time_info(FulfilmentCertificatePrepareCertificatesUseTimeInfo use_time_info) {
        this.use_time_info = use_time_info;
        return this;
    }

    public FulfilmentCertificatePrepareCertificatesVerifyRecord getVerify() {
        return verify;
    }

    public FulfilmentCertificatePrepareCertificates setVerify(FulfilmentCertificatePrepareCertificatesVerifyRecord verify) {
        this.verify = verify;
        return this;
    }

    public List<FulfilmentCertificatePrepareCertificatesVerifyRecord> getVerify_records() {
        return verify_records;
    }

    public FulfilmentCertificatePrepareCertificates setVerify_records(List<FulfilmentCertificatePrepareCertificatesVerifyRecord> verify_records) {
        this.verify_records = verify_records;
        return this;
    }
}
